//
// Description: 5824. 子字符串突变后可能得到的最大整数
// Created by Loading on 2021/7/25.
//

#include <bits/stdc++.h>

using namespace std;

string maximumNumber(string num, vector<int> &change) {
    for (int i = 0; i < num.size(); ++i) {
        // 找到第一个改变后比改变前大的位置
        if (num[i] - '0' < change[num[i] - '0']) {
            /* 注意是 >= 而不是 > ，因为后边可以等于 */
            while (i < num.size() && change[num[i] - '0'] >= num[i] - '0' ) {
                num[i] = change[num[i] - '0'] + '0';
                ++i;
            }
            break;
        }
    }
    return num;
}

int main() {
    string num = "132";
    vector<int> change = {9, 8, 5, 0, 3, 6, 4, 2, 6, 8};
    cout << maximumNumber(num, change) << endl;
}